#pragma once

/**
 * noncopyable被继承以后，派生类对象可以正常的构造和析构
 *但是派生类对象无法进行拷贝构造和赋值
 */
class noncopyable
{
public:
    noncopyable(const noncopyable&) = delete;
    noncopyable& operator=(const noncopyable&) = delete;  // 赋值返回void返回引用无所谓，区别在于能否连续赋值，但是这里反正都删了
protected:
    noncopyable() = default;
    ~noncopyable() = default;
};